import request from '@/utils/request' // 引入封装的 axios 实例

// 用户登录
export const login = async (data) => {
  try {
    const response = await request({
      url: '/user/login',
      method: 'post',
      data, // 传递登录数据
    })
    console.log('登录成功:', response)
    return response
  } catch (error) {
    console.error('登录失败:', error)
    throw error
  }
}

// 获取用户列表
export const getUserList = () => {
  return request({
    url: '/user/select',
    method: 'get',
  })
    .then((response) => {
      // 提取用户列表数据
      if (response && response.data && response.data.list) {
        return response.data.list.map((item) => {
          const user = item.user
          return {
            id: user.userId, // 用户编号
            account: user.username, // 用户名
            name: user.truename, // 用户昵称
            sex: user.sex, // 性别
            phone: user.tel, // 手机号
            department: user.department || '暂无部门', // 部门（如果有）
            img: user.img || null, // 头像（如果有）
          }
        })
      } else {
        return []
      }
    })
    .catch((error) => {
      console.error('获取用户列表失败:', error)
      throw error
    })
}

// 删除用户
export const deleteUser = (id) => {
  return request({
    url: `/user/del`, // 删除用户的接口地址
    method: 'get', // 使用 GET 方法
    params: { id }, // 将 userId 作为查询参数传递
  })
    .then((response) => {
      console.log('删除用户成功:', response)
      return response
    })
    .catch((error) => {
      console.error('删除用户失败:', error)
      throw error
    })
}

// 新增用户
export const saveUser = (data) => {
  return request({
    url: '/user/save', // 新增用户的接口地址
    method: 'post', // 使用 POST 方法
    data, // 传递用户数据
  })
    .then((response) => {
      console.log('新增用户成功:', response)
      return response
    })
    .catch((error) => {
      console.error('新增用户失败:', error)
      throw error
    })
}

// 批量删除用户
export const batchDeleteUsers = (ids) => {
  return request({
    url: '/user/batchDel',
    method: 'post',
    data: ids, // 直接传数组
  })
    .then((response) => {
      console.log('批量删除成功:', response)
      return response
    })
    .catch((error) => {
      console.error('批量删除失败:', error)
      throw error
    })
}

// 更新用户信息（优化版，支持 async/await 和错误处理）
export const updateUser = async (data) => {
  try {
    const response = await request({
      url: '/user/update',
      method: 'post',
      data,
    })
    console.log('更新用户成功:', response)
    return response
  } catch (error) {
    console.error('更新用户失败:', error)
    throw error
  }
}

// 导入用户
export const importUsers = (data) => {
  return request({
    url: '/user/import', // 后端提供的导入接口
    method: 'post',
    data, // 直接传json数组，或根据后端要求调整
  })
}

// 获取用户详情
export const getUserDetail = (id) => {
  return request({
    url: '/user/detail',
    method: 'get',
    params: { id },
  }).then((res) => res.data)
}
